/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pdf;

import com.itextpdf.text.*;
import com.itextpdf.text.pdf.*;
import com.itextpdf.text.pdf.draw.LineSeparator;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.BodyPart;
import javax.mail.internet.MimeBodyPart;
import javax.servlet.http.HttpSession;
import negocio.*;

/**
 *
 * @author davidcabrera
 */
public class generarpdf {

    Document documento = new Document();
    FileOutputStream ficheroPdf;

    
    
    public void generar(Instalacion inst, Pista pista, Usuario usuario, String hora, String ruta) throws Exception {

        
        try {
            this.ficheroPdf = new FileOutputStream(ruta);
            PdfWriter.getInstance(documento, ficheroPdf).setInitialLeading(30);
        } catch (FileNotFoundException ex) {
            System.out.println(ex.getMessage());
        }
        try {
            documento.open();
            
            Paragraph parrafo1 = new Paragraph("SPORT CLUB", FontFactory.getFont("sans-serif",30,Font.ITALIC,BaseColor.BLUE));
            parrafo1.setAlignment(1);
            documento.add(parrafo1);
            documento.add(new Paragraph("\n"));
            documento.add(new Paragraph("\n"));
            documento.add(new Paragraph("\n"));
            //el 1 es para centrar
            Paragraph parrafo2 = new Paragraph("Comprobante de reserva de pista.");  
            documento.add(parrafo2);
            documento.add(new Paragraph("\n"));
            documento.add(new Paragraph("\n"));
            
            documento.add(new Paragraph("DATOS DEL CLIENTE"));
            documento.add(new Paragraph("\n"));
            documento.add(new LineSeparator());
            documento.add(new Paragraph("\n"));
            documento.add(new Paragraph("\n"));
            documento.add(new Paragraph("Nombre: "+usuario.getNombre()+"\n"
                    + "Email: "+usuario.getEmail()));
            
            documento.add(new Paragraph("\n"));
            documento.add(new Paragraph("\n"));
            documento.add(new Paragraph("\n"));
            
            documento.add(new Paragraph("DATOS DE LA RESERVA"));
            documento.add(new Paragraph("\n"));
            documento.add(new LineSeparator());
            documento.add(new Paragraph("\n"));
            documento.add(new Paragraph("\n"));
            documento.add(new Paragraph("Instalación: "+inst.getNombre()+"\n"
                    + "Dirección: "+inst.getDireccion()+"\n"
                    + "Pista: "+pista.getNombre()+"\n"
                    + "Hora: "+hora+"\n"
                    + "Precio: "+pista.getPrecio()+" €"));
            documento.add(new Paragraph("\n"));
            documento.add(new Paragraph("\n"));
            documento.add(new Paragraph("\n"));
            /*
            PdfPTable tabla = new PdfPTable(3);
            //el numero indica la cantidad de Columnas
            tabla.addCell("celda1");
            tabla.addCell("celda2");
            tabla.addCell("celda3");
            tabla.addCell("celda4");
            tabla.addCell("celda5");
            tabla.addCell("celda6");
            // esto nos crea una tabla de 3 Columnas por dos Filas
            documento.add(tabla);
            documento.add(new Paragraph(" "));
            PdfPTable tabla2 = new PdfPTable(3);
            PdfPCell celda = new PdfPCell(new Paragraph("celda \nmodificada"));
            celda.setColspan(2);
            //cantidad de columnas que ocupa esta celda
            celda.setRowspan(2);
            //cantidad de filas que ocupa esta celda
            tabla2.addCell(celda);
            tabla2.addCell("celda5");
            tabla2.addCell("celda6");
            tabla2.addCell("celda7");
            tabla2.addCell("celda8");
            tabla2.addCell("celda9");
            documento.add(tabla2);
            
            */
            
            
            
            
            
            Date d=new Date();
            DateFormat hourdateFormat = new SimpleDateFormat("HH:mm:ss dd/MM/yyyy");
            String fecha = hourdateFormat.format(d);
            
            Paragraph pfecha=new Paragraph(fecha);
            pfecha.setAlignment(Paragraph.ALIGN_LEFT);
                    
            documento.add(pfecha);
            documento.close();
        } catch (Exception ex) {
            System.out.println(ex.toString());
        }
    }
}
